package com.hzz.dto.report;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.hzz.framework.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel("报送任务-任务发起 DTO")
public class ReportTaskDto extends BaseDto {
    @ApiModelProperty("id")
    Long id;
    @ApiModelProperty("报送标题")
    @NotNull(message = "title不能为空") @Size(max = 255, message = "title最大255字符")
    String title;
    @ApiModelProperty("报送类别")
    @NotNull(message = "type不能为空") @Size(max = 255, message = "type最大255字符")
    String type;
    @ApiModelProperty("报送单位id")
    @NotNull(message = "taskOrgId不能为空")
    String taskOrgId;
    @ApiModelProperty("报送单位名称")
    @Size(max = 555, message = "taskOrgName最大555字符")
    String taskOrgName;
    @ApiModelProperty("发起人id")
    Long taskRiveruserId;
    @ApiModelProperty("发起人姓名")
    String taskRiveruserName;
    @ApiModelProperty("任务内容")
    @NotNull(message = "taskContent不能为空") @Size(max = 1255, message = "taskContent最大1255字符")
    String taskContent;
    @ApiModelProperty("发起日期")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date dateInitiation;
    @ApiModelProperty("截止日期")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date dateDeadline;
    @ApiModelProperty("备注")
    @Size(max = 255, message = "memo最大255字符")
    String memo;
    @ApiModelProperty("版本号")
    Integer version;
    @ApiModelProperty("排序")
    Integer orderNo;
    @ApiModelProperty("删除标记")
    Integer delFlag;
    @ApiModelProperty("建立者id")
    Long createId;
    @ApiModelProperty("创建时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date dateCreated;
    @ApiModelProperty("更新时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date dateUpdated;
    @ApiModelProperty("已提交")
    Double readcommitted;
    @ApiModelProperty("已审核")
    Double hasAudited;
}
